<?php

class EstablecimientoEquiv extends CI_Controller {

	public function __construct() {
        parent::__construct();
        $this->load->model('establecimiento_model');
        $this->load->model('establecimiento_equiv_model');
        $this->load->model('banco_model');
        $this->load->helper('url');
        $this->load->database('default');
    }

    public function index () {
    	$bancos = $this->banco_model->obtenerBancos ();
    	$data = array(
    		'bancos' => $bancos
    	);
        $this->load->view('establecimientoEquivView', $data);
    }

    public function lista () {
    	$limite = $this->input->get('limit', TRUE);
    	$offset = $this->input->get('offset', TRUE);
    	$search = $this->input->get('search', TRUE);
    	$sinEquiv = $this->input->get('sinEquiv', TRUE);
    	if ($sinEquiv == 'false') {
			$resultado = $this->establecimiento_equiv_model->obtererLista($search, $limite, $offset);
			$cantidad = $this->establecimiento_equiv_model->itemsLista($search);
    	} else {
			$resultado = $this->establecimiento_equiv_model->obtererSinEquiv($search, $limite, $offset);
			$cantidad = $this->establecimiento_equiv_model->itemsSinEquiv($search);
    	}

		$obj = new stdClass();
		$obj->total = $cantidad;
		$obj->rows = $resultado;

		$this->output->set_content_type('application/json')
				->set_output(json_encode($obj));
    }
    
    public function establecimientos () {
    	$items = $this->input->post('items', TRUE);
    	$palabra = $this->input->post('palabra', TRUE);
    	$resultado = $this->establecimiento_model->obtererLista($items, 0, $palabra);
		$this->output->set_content_type('application/json')
				->set_output(json_encode($resultado));
    }
    
    public function asignar () {
    	$establecimiento = $this->input->post('establecimiento', TRUE);
    	$equivalencia = $this->input->post('equivalencia', TRUE);
    	$this->establecimiento_equiv_model->agregarEstablecimiento($equivalencia, $establecimiento);
    }
    
    public function validarExpresion () {
    	$expresion = "/".$this->input->post('expr', TRUE)."/";
    	$texto = $this->input->post('text', TRUE);
    	
    	$rpta = 0;
    	if (preg_match($expresion, $texto)) {
    		$rpta = 1;
    	}
    	
    	$this->output->set_content_type('application/json')
    	->set_output(json_encode($rpta));
    }
    
    public function listaEstablecimientos () {
    	$palabra = $this->input->post('palabra', TRUE);
    	$items = $this->input->post('items', TRUE);
    	$lista = $this->establecimiento_model->obtererLista($items, 0, $palabra);
    	
    	$resultado = array();
    	foreach ($lista as &$valor) {
    		$item = new stdClass();
    		$item->id = $valor->ID_ESTABLECIMIENTO;
    		$item->no = $valor->NOMBRE;
    		array_push($resultado, $item);
    	}

    	$this->output->set_content_type('application/json')
    	->set_output(json_encode($resultado));
    }
    
    public function guardar () {
    	$estabEquiv = $this->input->post('estabEquiv', TRUE);
    	$idBanco = $this->input->post('idBanco', TRUE);
    	$nombre = $this->input->post('nombre', TRUE);
    	$esExpr = $this->input->post('expresion', TRUE);
    	$establ = $this->input->post('establ', TRUE);
    	
    	if ($esExpr == 'ON' || $esExpr == 'on') {
    		$esExpr = 1;
    	} else {
    		$esExpr = 0;
    	}
    	
    	if ($estabEquiv != null && $estabEquiv != '') {
    		$this->establecimiento_equiv_model->actualizar($estabEquiv, $nombre, $establ, $esExpr, $idBanco);
    		
    	} else {
    		$this->establecimiento_equiv_model->guardar($nombre, $establ, $esExpr, $idBanco);
    	}
    }

}

?>